Safety and security is made easier through the use of video surveillance systems. These video surveillance systems utilize a plurality of cameras installed throughout a facility/location to capture video of activity occurring in various areas. The video is typically stored in a searchable database but may also be viewed in real-time by a user. The user interfaces with the surveillance system through a video management system (VMS) running on a computing device. The VMS provides the user with a graphical user interface (GUI) through which the user may control the various aspect of the system. For example, the user may interact with the VMS to control the operation of the cameras, view video, analyze video, and the like.
A video surveillance system may utilize cameras of a variety of types and from a variety of vendors. Each year hundreds of new camera models are introduced by dozens of different camera vendors. As a result, cameras in a video surveillance system may have different control parameters, may communicate differently, and may provide different information. Accordingly, the VMS must be configured to interact with each camera according to each camera's particular requirements.
Camera vendors typically supply an application programming interface (API) to provide a means for the VMS to interface with the camera at a level invisible to a user. Typically, the API for a particular camera is developed, owned, and controlled the particular camera's vendor. In some cases, a vendor may provide one API common to all of its camera models, but often a vendor may provide different APIs for each of its camera models because each may have different operating characteristics.
Recently, steps have been taken to standardize the APIs for cameras. For example, industry forums, such as the open network video interface forum (ONVIF), have been created with the goal of standardizing the interface of security products, including the APIs for security cameras. The adoption of these standards is not universal because a standard API may not reflect all features of a camera. Accordingly, new camera models typically support both an ONVIF API, which provides a basic interface, and a proprietary API, which provides a complete interface. To make matters worse, the implementation of the ONVIF standard may not be consistently applied by all vendors.
To address the problem of interfacing with various cameras that require a proprietary API or a “standard” API with a particular implementation, a certification process for each camera is necessary before using the camera with the VMS. The certification process for each camera may require a user to (i) discover the camera's supported functionality, (ii) create a file for use by the VMS, which specifies how to connect with the camera and the functionality supported by the camera, and (iii) test the operation of the camera with the VMS by performing dozens of tests, which validate the camera's functionality and which check the accuracy of the file created for use by the VMS. The certification process may be time consuming (e.g., may span a period of days) when performed manually.
Traditionally, the provider of the VMS performs the certification process because the file created during the certification process requires specialized knowledge. As a result, certifying all possible cameras for use with a VMS requires considerable time (e.g., obtaining/returning cameras) and resources (e.g., stewardship of cameras). In addition, when the certification process is performed manually there are additional development and quality assurance resources required because of human error, especially for testers without specialized experience or knowledge.
The video industry is growing and the volume of new and existing cameras that must be certified for use with a VMS in a video surveillance system will scale with this growth. There exists a need, therefore, for a more efficient certification process.